package com.xingkeduo.service.api.activity;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

import com.xingkeduo.model.param.ActivityCombinationParam;
import com.xingkeduo.model.po.TActivity;
import com.xingkeduo.model.po.TMarketingReceiveHistory;
import com.xingkeduo.model.vo.MarketingReceiveHistoryResponseVo;
import com.xingkeduo.model.vo.UserActivityResponseVo;
import com.xingkeduo.model.vo.api.ActivityApiResponseVo;

/**
 * 
 * @ClassName: StoreActivityService
 * @Description: 活动相关接口-c端使用
 * @author lixin
 * @date May 6, 2019 2:40:34 PM
 *
 */
public interface UserActivityService {
	/**
	 * 
	 * @Title: getUserAvailableStoreActivity
	 * @Description: 查询当前门店所有可用活动
	 * @param @param storeId 设定文件
	 * @return void 返回类型
	 * @throws @author lixin
	 * @date May 8, 2019 10:54:10 AM
	 */
	void getUserAvailableStoreActivity(ActivityCombinationParam param, UserActivityResponseVo userActivity);
	/**
	 * 
	* @Title: getUserAvailableCouponActivity 
	* @Description: 查询当前用户所有可用券数据 
	* @param @param param
	* @param @param userActivity    设定文件 
	* @return void    返回类型 
	* @throws 
	* @author lixin
	* @date May 8, 2019 6:24:51 PM
	 */
	void getUserAvailableCouponActivity(ActivityCombinationParam param, UserActivityResponseVo userActivity);
	/**
	 * 
	* @Title: getUserAvailableCardActivity 
	* @Description: 查询当前用户所有可用卡数据
	* @param @param param
	* @param @param userActivity    设定文件 
	* @return void    返回类型 
	* @throws 
	* @author lixin
	* @date May 8, 2019 6:25:17 PM
	 */
	void getUserAvailableCardActivity(ActivityCombinationParam param, UserActivityResponseVo userActivity);
	/**
	 * 
	* @Title: getUserAvailableStoreBypassFlowActivity 
	* @Description: 获取分流活动，限制用户
	* @param @param param
	* @param @param response    设定文件 
	* @return void    返回类型 
	* @throws 
	* @author lixin
	* @date May 18, 2019 10:13:12 AM
	 */
	void getUserAvailableStoreBypassFlowActivity(ActivityCombinationParam param, UserActivityResponseVo response);
	/**
	 * 
	* @Title: getStoreAvailableStoreBypassFlowActivity 
	* @Description: 根据门店id和发型师id，获取分流活动 
	* @param @param storeId
	* @param @param hairdresserId
	* @param @param dateList
	* @param @param response    设定文件 
	* @return void    返回类型 
	* @throws 
	* @author lixin
	* @date May 18, 2019 10:13:34 AM
	 */
	public Map getStoreAvailableStoreBypassFlowActivity(Long storeId, Long hairdresserId, Long hairServiceId, Date startDate, Date endDate);
	
	
	public ActivityApiResponseVo buildNewActivityResponse(TActivity activity, Long storeId, Long userId, Integer userType,
			Long hairServiceId, BigDecimal hairServiceOriginPrice, Date appointmentDate);
	
	public MarketingReceiveHistoryResponseVo buildNewMarketingResponse(TMarketingReceiveHistory history, Long storeId, Long hairServiceId,
			BigDecimal hairServiceOriginPrice, Date appointmentDate);
}
